from django.http import HttpResponse
from django.shortcuts import redirect
from django.utils.deprecation import MiddlewareMixin


class AuthMiddleware(MiddlewareMixin):
    """中间件1"""

    def process_request(self, request):
        # 0.排除那些不需要登录就能访问的页面
        # request.path_info 获取当前用户请求的URL  /app_02/login/
        if request.path_info in ["/app_02/login/", "/app_02/image/code/"]:
            return

        # 1.读取当前访问的用户的session信息, 如果能读到， 说明登录过了， 就可以向后走
        info_dict = request.session.get("info")
        if info_dict:
            return

        # 2. 没有登陆过
        return redirect("/app_02/login/")
        # 如果方法中没用返回值(返回None), 继续向后走
        # 如果有返回值HttpResponse，render， redirect

